home *** CD-ROM | disk | FTP | other *** search
- program main(input, output);
- { Prime Sieve Benchmark }
-
- const
- ITERATIONS = 1000;
- SIZE = 8190;
- ON = true;
- OFF = false;
-
- var
- count: integer;
- flags: array[0 .. SIZE] of boolean;
-
- procedure sieve;
- var
- i, k, prime: integer;
- iter, t: integer;
- begin
- for iter := 1 to ITERATIONS do
- begin
- count := 0;
- { turn flags on }
- for i := 0 to SIZE do
- flags[i] := ON;
- for i := 0 to SIZE do
- begin
- if flags[i] then
- begin
- prime := i + i + 3;
- { writeln(prime); }
- k := prime + i;
- while k <= SIZE do
- begin
- flags[k] := OFF;
- k := k + prime;
- end;
- count := count + 1;
- end;
- end;
- end;
- end;
- begin
- sieve;
- writeln(count, ' primes');
- end.
-